package as3.carcassone.tiles {
	import as3.carcassone.model.MeeplePositionVO;

	public interface IGameTile {
		function get data() : GameTileData;



		function set data( data : GameTileData ) : void



		function get view() : GameTileView;



		function set view( view : GameTileView ) : void



		function get x() : Number;



		function set x( x : Number ) : void;



		function get y() : Number;



		function set y( y : Number ) : void;



		/**
		 * This function locks all basic mouse-interactions i.e. removes EventListeners
		 */
		function lock() : void;



		/**
		 * This function unlocks all basic mouse-interactions i.e. adds EventListeners
		 */
		function unlock() : void;






		/**
		 * Adds a ManPositionVO on the tile which contains a Point()
		 * for a Meeple to stand on and a GroundType so we know what the Meeple-person standing on.
		 * 
		 */
		function addMeeplePosition( manPositionVO : MeeplePositionVO ) : void;



		/**
		 * Adds this tile to the GameBoard.
		 * Meaning if a user let's the tile go (MouseEvent.MOUSE_UP) then this function will perform
		 */
		function addToGameBoard() : void;
	}
}
